//package com.lonely.framework.web.service;
//
//import cn.hutool.core.util.StrUtil;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.lonely.common.core.domain.auth.UserMsgDto;
//import com.lonely.system.domain.dto.SysMenu;
//import com.lonely.system.service.ISysMenuService;
//import com.lonely.system.service.ISysRoleService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.util.HashSet;
//import java.util.Set;
//import java.util.stream.Collectors;
//
///**
// * 用户权限处理
// *
// * @author fzzf
// */
//@Component
//public class SysPermissionService {
//
//    @Autowired
//    private ISysRoleService roleService;
//
//    @Autowired
//    private ISysMenuService menuService;
//
//    /**
//     * 获取角色数据权限
//     *
//     * @param user 用户信息
//     * @return 角色权限信息
//     */
//    public Set<String> getRolePermission(UserMsgDto user) {
//        Set<String> roles = new HashSet<>();
//        // 管理员拥有所有权限
//        if (user.isAdmin()) {
//            roles.add("admin");
//        } else {
//            roles.addAll(roleService.selectRolePermissionByUserId(user.getUserId()));
//        }
//        return roles;
//    }
//
//    /**
//     * 获取按钮数据权限
//     *
//     * @param user 用户信息
//     * @return 菜单权限信息
//     */
//    public Set<String> getButtonPermission(UserMsgDto user) {
//        Set<String> perms = new HashSet<>();
//        // 管理员拥有所有权限
//        if (user.isAdmin()) {
//            perms.add("*:*:*");
//        } else {
//            perms.addAll(menuService.selectButtonPermsByUserId(user.getUserId()));
//        }
//        return perms;
//    }
//
//
//    /**
//     * 获取菜单数据权限列表
//     *
//     * @param user 用户信息
//     * @return 菜单权限信息
//     */
//    public Set<String> getMenuPermission(UserMsgDto user) {
//        Set<String> perms = new HashSet<>();
//        // 管理员拥有所有权限
//        if (user.isAdmin()) {
//            perms.addAll(this.menuService.list(new LambdaQueryWrapper<SysMenu>().ne(SysMenu::getMenuType, "F"))
//                    .stream()
//                    .map(SysMenu::getPath)
//                    .filter(StrUtil::isNotBlank)
//                    .collect(Collectors.toSet()));
//        } else {
//            // 待根据用户id获取菜单权限
//            perms.addAll(menuService.selectMenuPathByUserId(user.getUserId()));
//        }
//        return perms;
//    }
//
//}
